/*

* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     Smart-Shop开源商城系统/ Java商城-首选电商平台系统 请务必保留此注释头信息
* |     开源地址: https://gitee.com/ningbo-qishan/gruul-mall
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     可正常分享和学习源码,未经授权 不可商用！
* |     商业版中台购买/开源版商业授权 联系技术客服
* |     官网:  https://www.73app.cn/
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     Copyright (c) 2016-2999 宁波启山智软科技有限公司
* |     版权所有 ,侵权必究！
* ------------------------------------------------------------------------

*/
package com.medusa.gruul.solitaire.wechat.utils;

import com.medusa.gruul.solitaire.wechat.WeChatBot;
import com.medusa.gruul.solitaire.wechat.constant.Config;
import org.springframework.data.redis.core.RedisTemplate;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @author lcysike
 */
public class WeChatBotFactory {

	private static Map<String,WeChatBot> weChatBotMap = new ConcurrentHashMap<>(8);
	private static Map<String,Object> beanMap = new ConcurrentHashMap<>(8);

	public static synchronized WeChatBot getWeChatBotBean(String appModelId){
		WeChatBot weChatBot = weChatBotMap.get(appModelId);
		if (weChatBot == null){
			weChatBot = new MyBot(Config.me().showTerminal(false).autoLogin(false),appModelId);
			weChatBotMap.put(appModelId,weChatBot);
		}
    	return weChatBot;
	}

	public static RedisTemplate getRedisTemplate(){
		RedisTemplate redisTemplate = (RedisTemplate) beanMap.get("redisTemplate");
		if (redisTemplate==null){
			redisTemplate = (RedisTemplate) SpringUtil.getApplicationContext().getBean("redisTemplate");
			beanMap.put("redisTemplate",redisTemplate);
		}
		return redisTemplate;
	}
}

